Wireless communication networks providing packet data communications, such as GPRS (General Packet Radio Service) or 3G (3rd Generation) networks, can be used for providing Internet Protocol (IP) based services for wireless terminals coupled to such networks.
It is common that a unique public IP address is not permanently allocated to wireless terminals in wireless networks. One reason for this is that available IP addresses (specifically IPv4 addresses) are becoming scarse. A wireless network provider may allocate a private IP address to a wireless terminal for communicating within the wireless network, and use NAT (Network Address Translation) for dynamically allocating a public IP address to the wireless terminal for communicating in other networks. (In IP address space, some addresses are defined as private addresses that can be used by anybody in closed, “private” systems. Private IP addresses cannot be used globally as they are not uniquely routable to one specific physical entity. Whereas, public IP addresses are uniquely allocated to specific physical entities and thus they can be routed globally.)
A NAT device is usually a gateway element connecting a network or a part of a network to another network or to another part of a network. NAT may be implemented in many different ways; the main idea being replacing a private address used behind a NAT device with a public IP address for communicating in other networks and vice versa. That is, in a NAT device a source and/or destination address is changed from a private IP address to a public IP address or vice versa.
NAT may employ for example many-to-one mapping in the translation, meaning that all private IP addresses used behind the NAT device are replaced by the public IP address of the NAT device in the translation. In this way, all data packets originated behind the NAT device appear in other networks like they were originated in the NAT device. The NAT device then keeps track of the data packets returning to the NAT device, translates the public IP address back to the original private IP address, and forwards the data packets to the correct destinations. Usually different port numbers are used for identifying data packets belonging to different parties. In this case, it is not possible to directly contact a wireless terminal behind the NAT device from other networks. Instead, the wireless terminal oust initiate all communication.
One other alternative is to use many-to-many mapping in the translation, meaning that a private IP address used behind the NAT device is replaced by a public IP address taken from a pool of public IP addresses in the translation. Usually the number of public IP addresses in the pool is smaller than the number of private IP addresses in use behind the NAT device, because it is likely that all the devices behind the NAT device do not communicate simultaneously and therefore there is no need to have a public IP address for each of them. Since a public IP address is temporarily allocated specifically to a wireless terminal behind the NAT device, the wireless terminal can be directly contacted from other networks by using this temporarily allocated public IP address. However, one needs to have means to find out, which public IP address has been allocated to the wireless terminal at a given moment.
In addition to NAT, also other methods can be used for dynamically allocating an IP address to a wireless terminal. For example, International application WO 01/97483 A2 describes an alternative method of dynamically allocating an IP address to a mobile terminal.
Many of the IP based services currently available in the wireless domain are based on so-called pull concept, wherein a wireless terminal initiates the communication. If a wireless terminal initiates the IP based communication itself, it is sufficient that a valid public IP address is allocated to the wireless terminal when communication is initiated. In this case there is no need to know the IP address of the wireless terminal beforehand.
However, in some IP based services, such as so-called push-services, IP based multi-player games and IP based chat, the other communicating party initiates the communication. In order for these services to work it is required that IP address of the wireless terminal is known. Let's consider for example a server in the Internet, which is about to provide some IP based, push type of service to a mobile phone in a wireless network, while the public IP address of the mobile phone changes dynamically. Now, it is required that the server has means to find out valid IP address of the mobile phone at a given moment in order to be able to initiate IP based communication and provide the service to the mobile phone. As valid IP address information of wireless terminals is usually not readily available for other communicating parties, there is a need to provide address information for reaching wireless terminals.
A straightforward way to solve the problem discussed above is that a wireless network operator provides a domain name service that announces publicly current IP addresses of the wireless terminals coupled to the respective wireless network. FIG. 1 shows a network diagram illustrating such solution.
Therein a wireless network A 101, wireless network B 110, ISP (Internet Service Provider) network 113 and Intranet network 116 are coupled to the Internet 106 via NAT devices 105, 109 and 112 and via a firewall 115 comprising NAT functionality, respectively. Two wireless devices, a mobile phone 103 and a PDA (Personal Digital Assistant) 102, are coupled to the wireless network A, a mobile phone 111 is coupled to the wireless network B, a server 108 is coupled to the Internet and a PC (Personal Computer) 117 is coupled to the intranet network. Internet, ISP network, intranet network and wireless network A comprise name servers 107, 114, 118 and 104, respectively. A name server is a network element, which maintains address information of various devices by means of predefined host names associated with the respective devices. Name servers may communicate with other name servers in order to obtain address information maintained in some other name server. Also wireless network B may comprise a name server (not shown in FIG. 1).
Let's assume that the mobile phone 103 has a dynamic IP address, which is temporarily allocated to the mobile phone for example by a DHCP (Dynamic Host Configuration Protocol) server (not shown in FIG. 1) or by the NAT device 105 or by some other means. Every time the public IP address of the mobile phone 103 changes the currently valid address is stored into name server 104 in association with a unique host name that has been allocated to the mobile phone. As the wireless network operator controls both the allocation of IP addresses and the name server, it is straight-forward to keep the name server 104 up-to-date.
The name server 104 then announces the currently valid IP address of the mobile phone 103 to other communicating parties by means of the unique host name associated with the mobile phone either directly or via other name server elements. Dashed lines in FIG. 1 illustrate distributing the IP address of the mobile phone 103 to other communicating parties via different name servers. For example, PC 117 obtains the IP address of the mobile phone 103 from the name server 118, which obtains the IP address from the name server 104 via the name server 107, and PDA device 102 obtains the IP address of the mobile phone 103 directly from the name server 104.
This solution does not have large technical problems. However, the problem of this solution is that business-wise wireless network operators are generally not comfortable with sharing reachability information. At least the operators are not willing to provide the reachability information for external parties free of charge, because providing such service may reduce network operators' income as it enables bypassing their proprietary services by IP based services, for example.
Another way to approach the addressability of mobile terminals is to use address conversions of SIP (Session Initiation Protocol), proposed by IETF (Internet Engineering Task Force). In the SIP addressing method, a SIP registration proxy is used for converting different types of information, which specifies the user (such as email address or telephone number of the user), to corresponding terminal IP address. Wireless terminal users register themselves in the SIP registration proxy, so that other wireless terminal users can obtain their IP address from the registration proxy. The use of SIP requires that specific SIP servers are implemented and that client terminals support specific SIP protocol.
Thus, none of the current solutions is optimal, and therefore there is a need for a new, alternative solution for tackling with the mobile reachability problem.